package coalescent.recursion;

import coalescent.statistic.K69_AC;
import org.junit.Ignore;
import org.junit.Test;

import static test.coalescent.data.K69TestData.*;
import static test.coalescent.recursion.TestExactRecursionComputations.testExactProbability;

/**
 * Tests of pattern testExactProb_D_a_b correspond to the test data gene tree of row a and column b
 * on figure 2.13, page 54 in Hein-et.al[2005].
 *
 * @version version
 * @author Susanta Tewari
 * @history Created on 11/3/12
 * @since 1.4.0
 */
public class RecursionTest_K69_AC {

    @Test
    public void testExactProb_D_2_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-2-2")), heinProbs.get("D-2-2"));
    }

    @Test
    public void testExactProb_D_3_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-3-1")), heinProbs.get("D-3-1"));
    }

    @Test
    public void testExactProb_D_3_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-3-2")), heinProbs.get("D-3-2"));
    }

    @Test
    public void testExactProb_D_3_3() {
        testExactProbability(new K69_AC(heinDataSets.get("D-3-3")), heinProbs.get("D-3-3"));
    }

    @Test
    public void testExactProb_D_4_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-4-1")), heinProbs.get("D-4-1"));
    }

    @Test
    public void testExactProb_D_4_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-4-2")), heinProbs.get("D-4-2"));
    }

    @Test
    public void testExactProb_D_4_3() {
        testExactProbability(new K69_AC(heinDataSets.get("D-4-3")), heinProbs.get("D-4-3"));
    }

    @Test
    public void testExactProb_D_4_4() {
        testExactProbability(new K69_AC(heinDataSets.get("D-4-4")), heinProbs.get("D-4-4"));
    }

    @Test
    public void testExactProb_D_5_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-5-1")), heinProbs.get("D-5-1"));
    }

    @Test
    public void testExactProb_D_5_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-5-2")), heinProbs.get("D-5-2"));
    }

    @Test
    public void testExactProb_D_5_3() {
        testExactProbability(new K69_AC(heinDataSets.get("D-5-3")), heinProbs.get("D-5-3"));
    }

    @Test
    public void testExactProb_D_5_4() {
        testExactProbability(new K69_AC(heinDataSets.get("D-5-4")), heinProbs.get("D-5-4"));
    }

    @Test
    public void testExactProb_D_6_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-6-1")), heinProbs.get("D-6-1"));
    }

    @Test
    public void testExactProb_D_6_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-6-2")), heinProbs.get("D-6-2"));
    }

    @Test
    public void testExactProb_D_6_3() {
        testExactProbability(new K69_AC(heinDataSets.get("D-6-3")), heinProbs.get("D-6-3"));
    }

    @Test
    public void testExactProb_D_7_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-7-1")), heinProbs.get("D-7-1"));
    }

    @Test
    public void testExactProb_D_7_2() {
        testExactProbability(new K69_AC(heinDataSets.get("D-7-2")), heinProbs.get("D-7-2"));
    }

    @Test
    public void testExactProb_D_8_1() {
        testExactProbability(new K69_AC(heinDataSets.get("D-8-1")), heinProbs.get("D-8-1"));
    }

    @Test
    public void testExactProb_D_J_3() {
        testExactProbability(new K69_AC(johnDataSet.get("J-3")), johnProbs.get("J-3"));
    }

    @Test
    public void testExactProb_D_T_1() {
        testExactProbability(new K69_AC(tewariDataSets.get("T-1")), tewariProbs.get("T-1"));
    }

    @Test
    public void testExactProb_D_T_2() {
        testExactProbability(new K69_AC(tewariDataSets.get("T-2")), tewariProbs.get("T-2"));
    }

    @Test
    public void testExactProb_D_T_3() {
        testExactProbability(new K69_AC(tewariDataSets.get("T-3")), tewariProbs.get("T-3"));
    }

    @Test
    @Ignore
    public void testExactProb_D_gt94_1() {
        testExactProbability(new K69_AC(heinDataSets.get("gt94-1")), heinProbs.get("gt94-1"));
    }
}
